前言
Spinner 是 Android 開發中的一個 UI 元件,它通常用於實現下拉式選單。下拉式選單是一種常見的使用者介面元素,它允許用戶從一個選項清單中選擇一個值。Spinner 提供了一個視覺上的按鈕,當用戶點擊該按鈕時,會彈出一個列表,用戶可以在該列表中選擇適當的項目,在這裡我會介紹兩種方法來教大家Spinner的新增方式。結果圖如下
!
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="409dp"
android:layout_height="219dp"
android:layout_marginTop="96dp"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:gravity="center"
android:text="我的下拉式選單"
android:textColor="@color/black"
android:layout_weight="1" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2"
android:orientation="horizontal">
<Spinner
android:id="@+id/spinner"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" />
<Spinner
android:id="@+id/spinner2"
android:layout_width="0dp"
android:entries="@array/ticket"
android:layout_height="match_parent"
android:layout_weight="1" />
</LinearLayout>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7"
android:gravity="center"
android:text="TextView" />
</LinearLayout>
![https://ithelp.ithome.com.tw/upload/images/20230815/201615020jMvA3sGQa.png](https://ithelp.ithome.com.tw/upload/images/20230815/201615020jMvA3sGQa.png)
Java code
package com.example.myapplicationspinner;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import java.util.Arrays;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Spinner MySpinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ById();//綁定元件
setMySpinner();//set spinner item
}
//綁定元件
public void ById(){
MySpinner = findViewById(R.id.spinner);
}
//set spinner item
public void setMySpinner() {
String SpinnerItem[] = {"台北市","台中市","南投縣","台南市"};
ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, SpinnerItem);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
MySpinner.setAdapter(adapter);
}
}
方法二(使用String.xml)
<resources>
<string name="app_name">My Application Spinner</string>
<string-array name="ticket">
<item>全票</item>
<item>半票</item>
<item>學生票</item>
<item>敬老票</item>
</string-array>
</resources>
android:entries="@array/ticket"
----總結----
Spinner 的一些重要特點和用途:
選項選擇: Spinner 主要用於顯示選項清單,用戶可以通過點擊 Spinner 並選擇其中一個選項。這對於讓用戶從預定的選擇中進行選擇非常有用。
資料綁定: 你可以通過 ArrayAdapter 或其他自定義的 Adapter 來將數據與 Spinner 綁定。這意味著你可以從資料源(例如字串陣列、資料庫、API 回應等)中提取選項,然後將其顯示在 Spinner 中。
自訂外觀: 你可以自訂 Spinner 的外觀,包括展開時的選單佈局、選擇選項的外觀等,以適應你的應用程式設計。
動態更新: 你可以在運行時動態更新 Spinner 中的選項。這對於在使用者與應用程式互動的過程中,根據不同情況提供不同的選擇非常有用。
事件處理: 你可以設置監聽器來監聽 Spinner 中選項的選擇事件。這讓你能夠在用戶進行選擇時執行特定的操作,例如根據所選的項目更新其他部分的界面。
Spinner 在許多場景中都很有用,例如: